package com.ldp.designpatterns.study.bridge.demo1;

import com.ldp.designpatterns.study.bridge.demo1.abstractClass.Circle;
import com.ldp.designpatterns.study.bridge.demo1.abstractClass.Shape;
import com.ldp.designpatterns.study.bridge.demo1.abstractClass.Square;
import com.ldp.designpatterns.study.bridge.demo1.impl.Blue;
import com.ldp.designpatterns.study.bridge.demo1.impl.Color;
import com.ldp.designpatterns.study.bridge.demo1.impl.Red;

/**
 * @ClassName BridgeTest
 * @Description
 * 在这个示例中，Color 接口代表颜色的实现部分，Red 和 Blue 分别是实现了颜色接口的具体颜色类。
 * Shape 是形状的抽象部分，具有一个颜色引用，而 Circle 和 Square 是继承自 Shape 的具体形状类。
 * 这种设计允许我们在不改变形状或颜色的情况下，独立地对它们进行扩展和变化。
 * @Author lindipei
 * @Date 2023/10/17 11:25
 */
public class BridgeTest {

    public static void main(String[] args) {
        Color redColor = new Red();
        Color blueColor = new Blue();

        Shape redCircle = new Circle(redColor);
        Shape blueSquare = new Square(blueColor);

        redCircle.draw();
        blueSquare.draw();

    }
}
